/*
https://leetcode.cn/problems/find-pivot-index/description/
*/

int pivotIndex(int* nums, int numsSize) {
    //记录整个数组和
    int total_sum = 0;
    for(int i = 0; i < numsSize; i++)
    {
        total_sum += nums[i];
    }
    //sum用于记录除当前元素外左半部分的和
    int sum = 0;
    for(int i = 0; i < numsSize; ++i)
    {
        //符合题目条件直接返回
        if(2*sum + nums[i] == total_sum) return i;
        //不符合继续把当前值记录到sum
        sum += nums[i];
    }
    return -1;
}


/*
我的错误代码
pivotIndex(int* nums, int numsSize) {
    //定义双指针
    int left = 0, right = numsSize - 1;
    int sum_left = 0, sum_right = 0;
    while(left < right - 1)
    {
        if(sum_left < sum_right)
        {
            sum_left += nums[left];
            ++left;
        }
        else
        {
            sum_right += nums[right];
            --right;
        }
    }
    //此时，左右指针相邻，比较最后一个数
    if(sum_left < sum_right)
    {
        sum_left += nums[left];
        if(sum_left == sum_right) return right;
    }
    else
    {
        sum_right += nums[right];
        if(sum_left == sum_right) return left;
    }
    return -1;
}
*/